<?php namespace Admin\Controller;
use Hdphp\Controller\Controller;

class CateController extends CommonController{
	//定义私有属性，只有类的内部可以使用 __init是框架定义的，不与父级构造函数冲突
	private $model;
	public function __init(){
		//调用CommonController里面的构造函数
		parent::__init();
		//实例化Cate模型类

		$this->model = new \Common\Model\Cate;
	}
	//分类列表展示
	public function index(){
		//获得所有分类
		$cateData = $this->model->get();
		//数据变为树状结构
		$cateData = Data::tree($cateData,'cname','cid');
		//分配数据
		//p($cateData);
		View::with('cateData',$cateData);
		View::make();
	}
	//添加分类
	
	public function addcate(){
		//如果用户有提交
		if(IS_POST){
			//如果自动过滤不通过并且可以获得错误信息输出
			if(!$this->model->store()) View::error($this->model->getError());
			//如果验证通过了，提示成功，跳转到分类展示
			View::success('添加成功',U('index'));
		}
		$typeModel = new \Common\Model\Type;
		$typeData = $typeModel->get();
		//p($typeData);
		View::with('typeData',$typeData);
	    View::make();
	}
	//添加子分类
	public function addson(){
		if(IS_POST){
			if(!$this->model->store()) View::error($this->model->getError());
			View::success('添加子分类成功','index');
		}
		//1.获得所属分类
		$cid = Q('get.cid',0,'intval');	
		p($cid);
		//2.查出该分类的所属分类，只要cid ,cname字段，只取一条
		$parent = $this->model->field('cid,cname,type_typid')->where("cid={$cid}")->find();
		//实例化类型表
		$typeModel = new \Common\Model\Type;
		//获得所有类型数据
		$typeData = $typeModel->get();
		//分配变量
		View::with('typeData',$typeData);		
		View::with('parent',$parent);
		//载入模板
	    View::make();
	}
	//删除分类
	public function del(){
		//接收cid
		$cid = Q('get.cid',0,'intval');
		//p($cid);die;
		//获得要删除的分类的pid
		$pid = $this->model->where("cid={$cid}")->pluck('pid');
		//让子集上移一位，也就是pid变成上一级的pid
		$this->model->where("pid={$cid}")->save(array('pid'=>$pid));
		//删除对应的分类
		$this->model->where("cid={$cid}")->delete();
		View::success('删除该分类成功');

	}
	//编辑分类
	public function edit(){
		//3.修改
		if(IS_POST){
		//自动验证不通过，提示错误，否则写入数据库提示成功
			if(!$this->model->edit()) View::error($this->model->getError());
			View::success('编辑成功',U('index'));
		}
		
		//1.获得就内容
		$cid = Q('get.cid',0,'intval');
		$olddata = $this->model->where("cid={$cid}")->find();
		//2.分配旧数据
		View::with('olddata',$olddata);
		//3.所属分类不能是自己和自己的子集
		$cateData = $this->model->getNoMy($cid);
		View::with('cateData',$cateData);
	    View::make();
	}
	
	
}












 ?>